#ifndef IPROFILE_H
#define IPROFILE_H

#include <QObject>

#include "cauthinfo.h"

class CProfile;

class IProfile : public QObject
{
    Q_OBJECT
public:
    explicit IProfile(QObject *parent = 0) : QObject(0) {}
    virtual ~IProfile() {}

    virtual QString networkId() const = 0;

    virtual bool match(const CAuthInfo &authInfo) {return false;}
    virtual bool fillAuthInfo(CAuthInfo * authInfo) {return false;}

    // don`t set parent for result instance
    virtual CProfile * createInstance(const CAuthInfo &authInfo) = 0;

signals:
    void aboutToShutdown(bool * abort);
};

#endif // IPROFILE_H
